/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  dev
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/

reduction
{
    // Activate reduction
    active  on;

    // Switch logging of the reduction statistics and performance
    log         on;

    // Tolerance depends on the reduction method, see details for each method
    tolerance   1e-4;

    // Available methods: DRG, DAC, DRGEP, PFA, EFA
    method DAC;

    // Search initiating set (SIS) of species, needed for most methods
    initialSet
    {
        CO;
        CH4;
        HO2;
    }

    // For DAC, option to automatically change the SIS switch from HO2 to H2O
    // and CO to CO2, + disable fuel
    automaticSIS    off;

    // When automaticSIS, the method needs to know the fuel
    fuelSpecies
    {
        CH4 1;
    }
}

tabulation
{
    // Activate tabulation
    active      on;

    // Switch logging of the tabulation statistics and performance
    log         on;

    printProportion    off;

    printNumRetrieve   off;

    // Tolerance used for retrieve and grow
    tolerance   3e-3;

    // ISAT is the only method currently available
    method    ISAT;

    // Scale factors used in the definition of the ellipsoid of accuracy
    scaleFactor
    {
        otherSpecies 1;
        Temperature  10000;
        Pressure     1e15;
        deltaT       1;
    }

    // Maximum number of leafs stored in the binary tree
    maxNLeafs   5000;

    // Maximum life time of the leafs (in time steps) used in unsteady
    // simulations to force renewal of the stored chemPoints and keep the tree
    // small
    chPMaxLifeTime 1000;

    // Maximum number of growth allowed on a chemPoint to avoid distorted
    // chemPoints
    maxGrowth  100;

    // Number of time steps between analysis of the tree to remove old
    // chemPoints or try to balance it
    checkEntireTreeInterval  500;

    // Parameters used to decide whether to balance or not if the tree's depth
    // is larger than maxDepthFactor*log2(nLeafs) then balance the tree
    maxDepthFactor   2;

    // Try to balance the tree only if the size of the tree is greater
    minBalanceThreshold 30;

    // Activate the use of a MRU (most recently used) list
    MRURetrieve false;

    // Maximum size of the MRU list
    maxMRUSize 0;

    // Allow to grow points
    growPoints  true;

    // When mechanism reduction is used, new dimensions might be added
    // maxNumNewDim set the maximum number of new dimensions added during a
    // growth
    maxNumNewDim 10;
}


// ************************************************************************* //
